package listbyorder.access001_100.test13;

import java.util.HashMap;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/6 14:38
 */
public class Solution2 {

    // 解法二： 比较前面和后面两个元素，如过前面的元素取值比后面的元素取值小，则减去减去当前的值
    public int romanToInt2(String s) {
        // 创建HashMap
        HashMap<Character, Integer> map = new HashMap<>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        int ans = 0;
        int cur = 0;
        int next = 0;
        for (int i = 0; i < s.length() - 1; i++) {
            cur = map.get(s.charAt(i));
            next = map.get(s.charAt(i + 1));
            if (cur < next) {
                ans -= cur;
            } else {
                ans += cur;
            }
        }
        return ans += map.get(s.charAt(s.length() - 1));
    }
}
